#include <iostream>
#include <vector>
#include <string>

using namespace std;

int MAX = 200;

string reverseword(string &str)
{
    string ans[MAX];
    int len = str.length();
    int ps = 0;
    int pa = 0;
    while (str[ps] == ' ')
        ps++;
    //此时 str[ps] 指向字符串中第一个不为空格的元素

    //拆解字符串，以空格分解为单词放入string数组ans[pa]
    for (int i = ps; i < len; i++)
    {
        if (str[ps] == ' ')
        {
            while (str[ps] == ' ')
                ps++;
            i = ps;
            if (i == len)
                break;
            pa++;
        }
        ans[pa] += str[ps++];
    }

    //将单词数组 中间用空格 连接成一个字符串返回
    string r = "";
    for (int i = pa; i >= 0; i--)
    {
        r += ans[i];
        if(i !=0 )
            r += ' ';
    }

    return r;
}

int main()
{
    string str;
    //解决带空格的 string 输入
    getline(cin,str,'\n');
    string r = reverseword(str);
    cout<<r<<endl;
    return 0;
}